/**
 * 数据库配置文件 - SQLite
 */
const sqlite3 = require('sqlite3').verbose();
const path = require('path');
require('dotenv').config();

// 数据库配置
const dbConfig = {
  file: process.env.DB_FILE || path.join(__dirname, '../../data/spoken_assistant.db')
};

// 连接数据库
let db = null;

const connectDB = () => {
  return new Promise((resolve, reject) => {
    try {
      // 确保数据库目录存在
      const dbDir = path.dirname(dbConfig.file);
      const fs = require('fs');
      if (!fs.existsSync(dbDir)) {
        fs.mkdirSync(dbDir, { recursive: true });
      }
      
      // 连接数据库
      db = new sqlite3.Database(dbConfig.file, (err) => {
        if (err) {
          console.error('数据库连接失败:', err.message);
          reject(err);
          process.exit(1);
        } else {
          console.log('数据库连接成功');
          resolve(db);
        }
      });
    } catch (error) {
      console.error('数据库连接失败:', error.message);
      reject(error);
      process.exit(1);
    }
  });
};

module.exports = {
  connectDB,
  getDb: () => db,
  dbConfig
};